package com.example.leo.mycharmingstudent.a0831;

import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import com.example.leo.mycharmingstudent.R;

public class LoginActivity extends AppCompatActivity
        implements View.OnClickListener {

    private static final String TAG = "LoginActivity";

    //用户名
    private EditText etUserName;
    //密码
    private EditText etPassword;
    //注册按钮
    private TextView tvRegister;
    //登录按钮
    private TextView tvLogin;
    //免责声明
    private TextView tvDisclaimer;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        findViews();
        initData();
        initEvent();
    }

    private void findViews() {
        etUserName = findViewById(R.id.et_username_activity_login);
        etPassword = findViewById(R.id.et_password_activity_login);
        tvRegister = findViewById(R.id.tv_register_activity_login);
        tvLogin = findViewById(R.id.tv_login_activity_login);
        tvDisclaimer = findViewById(R.id.tv_disclaimer_activity_login);
    }

    private void initData() {

    }

    private void initEvent() {
        //为什么这里可以传this
        //因为LoginActivity实现了View.OnClickListener接口
        //LoginActivity就是View.OnClickListener类型
        //setOnClickListener方法接收OnClickListener类型的参数
        //所以，可以传this
        tvRegister.setOnClickListener(this);
        tvLogin.setOnClickListener(this);
        tvDisclaimer.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            //跳转到注册页面
            case R.id.tv_register_activity_login:
                startActivity(new Intent(this,
                        RegisterActivity.class));
                break;
            //登录操作
            case R.id.tv_login_activity_login:
                //这个地方可以添加方法吗？举个栗子：login();
                //为什么此处用一个方法，而不是直接写代码实现？
                //因为业务逻辑代码会有很多行，如果都写在一起，影响视觉效果，影响代码浏览
                login();
                break;
            //免责声明
            case R.id.tv_disclaimer_activity_login:
                Toast.makeText(this,
                        "你不同意也得同意，不同意不让用",
                        Toast.LENGTH_LONG)
                        .show();
                break;
            default:
                break;
        }
    }

    private void login() {
//        Log.e(TAG, "现在login方法是空实现，就是说，啥也没有");
        //先获取用户名和密码
        String userName = etUserName.getText().toString();
        String password = etPassword.getText().toString();
        //需要判断一下，不允许用户名或密码为空
        if (TextUtils.isEmpty(userName) ||
                TextUtils.isEmpty(password)) {
            Toast.makeText(this,
                    "用户名或密码不能为空",
                    Toast.LENGTH_LONG).show();
            //此处return，表示不向下执行代码了
            return;
        }

        /*
          1.读取
          1.1获取SharedPreferences对象
          1.2调用getString，getInt，getBoolean获取数据
          1.2.1注意：以上获取数据方法第二个参数表示默认值
          注意：app卸载以后，sharedpreference保存的数据也会被删除
         */
        SharedPreferences sp = getSharedPreferences("sp", Context.MODE_PRIVATE);
        String savedUserName = sp.getString("username", "");
        String savedPassword = sp.getString("password", "");

        //判断一下  用户名和密码都必须相同，才可以登录，跳转到主页
        if (TextUtils.equals(userName, savedUserName) &&
                TextUtils.equals(password, savedPassword)) {
            Toast.makeText(this,
                    "登录成功",
                    Toast.LENGTH_LONG).show();
            //跳转到主页
            startActivity(new Intent(this, MainPageActivity.class));
            finish();
        } else {
            Toast.makeText(this,
                    "登录失败",
                    Toast.LENGTH_LONG).show();
        }
    }
}
